package com.general.framework.example.interval;

import jdk.nashorn.internal.parser.JSONParser;

import java.util.Map;
import java.util.concurrent.CompletableFuture;

/**
 * CompletableFuture相比于Future，提供了更强大的功能，比如异步任务的链式调用、异常处理等。
 * 1. 异步任务完成后的处理，比如通知、回调等
 * 2. 支持异步任务的等待和获取结果
 * 3. 支持多个CompletableFuture异步任务的合并和组合
 * 4. 支持异步任务的异常处理
 */
public class CompletableFutureDemo {
    public static void main(String[] args) {
        CompletableFuture<Void> completableFuture = CompletableFuture.runAsync(() -> callThirdPartyAPI())
                .thenAccept((result) -> {
                    System.out.println("接口调用成功！");
                    System.out.println("结果：" + result);
                })
                .exceptionally((ex) -> {
                    System.err.println("接口调用失败！");
                    ex.printStackTrace();
                    return null;
                });
        
        // 等待所有异步任务完成
        completableFuture.join();
    }
    
    public static String callThirdPartyAPI() {
        // 发起HTTP请求、调用第三方接口等操作...
        Map<String, String> map = SendRequest.sendGet();
        return "接口返回数据"+ map;
    }
}